package com.gper.edu.vip.builder.singleton;

import java.io.Serializable;

/**
 * @Author: ellis.guan
 * @Description: 序列化单例
 * @Date: 2020/2/26 22:16
 * @Version: 1.0
 */
public class SerializableSingleton implements Serializable {
    //序列化: 把内存中对象的状态转换成字节码的形式，把字节码通过IO输出流写到磁盘上。
    //反序列化: 把持久化的字节码通过IO输入流，读取到内存中转换成对象
    private static SerializableSingleton singleton = new SerializableSingleton();

    private SerializableSingleton(){}

    public static SerializableSingleton getInstance(){return singleton;}

    /**
     * 防止单例对象被序列化，反序列化破坏
     * @return
     */
    private Object readResolve(){
        return singleton;
    }
}
